package set_;

/**
 * @Author 小闽
 * @Date 2024/11/1 22:41
 * @PackageName: set_
 * @ClassName: HashSetStruct
 * @Description:
 * @Version
 */
@SuppressWarnings({"all"})
public class HashSetStruct {
    public static void main(String[] args) {
        // 模拟一个HashSet的底层，（HashMap的底层结构）
        // 1. 创建一个数组，数组的类型是 Node[]
        // 2. 有些人，直接把 Node[] 数组称为表
        Node[] table = new Node[16];
        // 3. 创建结点
        Node john = new Node("john", null);
        Node jack = new Node("jack", null);
        Node rose = new Node("rose", null);
        // 4. 将john元素放入到table数组中索引为2的创建的结点中去
        table[2] = john;
        john.next = jack;
        jack.next = rose;
        Node lucy = new Node("lucy", null);
        table[3] = lucy;
        System.out.println("table= " + table);
    }
}
class Node{ // 结点，存储数据，可以指向下一个结点，从而形成链表
    Object item;  // 存放数据
    Node next;   // 指向下一个结点

    public Node(Object item, Node next) {
        this.item = item;
        this.next = next;
    }
}
